#!/usr/bin/env node

const fs = require('fs')
const path = require('path')
const inquirer = require('inquirer')
const ejs = require('ejs')

inquirer.prompt([
    {
        type: 'input', // 指定这个问题是通过用户输入的
        name: 'name', // 用户的回答返回的 key 值
        message: 'project name?' // 命令行的询问提示
    }
])
.then(anwsers => {

    // 获取模板目录
    const tmplDir = path.join(__dirname, 'templates')

    // 获取目标目录，一般是拿到运行 cli 的目录
    const destDir = process.cwd()

    // 将模板下的文件渲染后放入模板目标目录
    // 读取模板目录下的文件
    fs.readdir(tmplDir, (err, files) => {
        if(err) throw err

        // 循环得到目录下的每个文件
        files.forEach(file => {
            // 通过模板引擎渲染文件, 使用 ejs 模板引擎
            ejs.renderFile(path.join(tmplDir,file), anwsers, (err, result) => {
                if(err) throw err

                // 将结果写入到目标目录
                fs.writeFileSync(path.join(destDir, file), result)
            })
        })
    })
})